home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TPUG - Toronto PET Users Group
/
TPUG Users Group CD
/
TPUG Users Group CD.iso
/
CRS
/
crs07.d81
/
speed.prg
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2009-10-10
|
5KB
|
135 lines
5 POKE56,160:CLR:DIMS,N,X,Y,D,I,H,U,E,G,P,Q,A$,A(2000)
10 PRINT"[147][142]ONE MOMENT PLEASE..."
15 FORI=.TO279:READY:POKEI+49152,Y:NEXT
20 GOTO500
25 OPEN15,D,15:PRINT#15,"B-P";8;0
30 FORI=.TO58:PRINT#8,CHR$(PEEK(I+49373));:NEXT
35 CLOSE8:N=.:E=56576:G=56321:H=32:U=1:PRINT"[147]"
40 POKE139,156:POKE140,18:POKE141,77:POKE142,98:POKE143,248
45 PRINT#15,"I0:"
50 PRINT#15,"U3:"
60 POKEE,23:SYS49152
65 SYS49152
70 N=N+U:A(N)=S:PRINTN,,S
75 IFPEEK(G)ANDHTHENSYS49191:GOTO70
80 SYS59060:POKEE,7:POKE198,.:CLOSE15
85 PRINT" PRESS RETURN."
90 GETA$:IFA$=CHR$(13)THEN100
95 GOTO90
100 PRINT"[147]PRESS M FOR MAIN MENU."
105 PRINT"PRESS R TO REVIEW READINGS."
110 PRINT"PRESS X TO EXIT."
115 GETA$:IFA$="M"THEN500
120 IFA$="R"THEN135
125 IFA$="X"THENEND
130 GOTO115
135 PRINT"[147]PRESS S TO SEND DATA TO SCREEN."
140 PRINT"PRESS P TO SEND DATA TO PRINTER."
145 GETA$:IFA$="S"THEN160
150 IFA$="P"THEN300
155 GOTO145
160 PRINT"[147]ENTER STARTING READING NUMBER (> 0)."
165 X=1:PRINT:INPUTX:IFX<1THEN160
170 PRINT"ENTER ENDING READING NUMBER (<";N+1;")."
172 Y=N:PRINT:INPUTY:IFY>NTHEN170
175 P=.:Q=P:PRINT"[147]READING # SPEED (RPM'S)"
177 PRINT"[163][163][163][163][163][163][163][163][163] [163][163][163][163][163][163][163][163][163][163][163][163][163]"
180 FORI=XTOY:PRINTI,,A(I):P=P+1:Q=1/A(I)+Q:NEXT:Q=INT(10*P/Q+.5)/10
185 PRINT"AVERAGE SPEED =";Q;"RPM."
190 PRINT" PRESS RETURN."
195 GETA$:IFA$=CHR$(13)THEN205
200 GOTO195
205 PRINT"[147]PRESS M FOR LAST MENU."
210 PRINT"PRESS R FOR ANOTHER SET OF READINGS."
215 GETA$:IFA$="M"THEN100
220 IFA$="R"THEN160
230 GOTO215
300 PRINT"[147]ENTER STARTING READING NUMBER (> 0)."
305 PRINT:INPUTX:IFX<1THEN160
310 PRINT"ENTER ENDING READING NUMBER (<";N+1;")."
312 PRINT:INPUTY:IFY>NTHEN170
315 PRINT"[147]PRINTING..."
317 OPEN4,4:CMD4:PRINTCHR$(27);"A";
320 P=.:Q=P:PRINT"READING # SPEED (RPM'S)"
325 PRINT"[163][163][163][163][163][163][163][163][163] [163][163][163][163][163][163][163][163][163][163][163][163][163]"
330 FORI=XTOY:PRINTI;CHR$(16);"20";A(I):P=P+1:Q=1/A(I)+Q
332 NEXT:Q=INT(10*P/Q+.5)/10
335 PRINT:PRINT"AVERAGE SPEED =";Q;"RPM'S."
340 PRINT#4:CLOSE4
345 PRINT"PRESS M FOR LAST MENU."
350 PRINT"PRESS R FOR ANOTHER SET OF READINGS."
355 GETA$:IFA$="M"THEN100
360 IFA$="R"THEN300
365 GOTO355
500 PRINT"[147][142]PRESS D FOR DOCUMENTATION."
505 PRINT"PRESS S FOR SPEED CHECK."
510 PRINT"PRESS X TO EXIT."
515 GETA$:IFA$="D"THEN535
520 IFA$="S"THEN800
525 IFA$="X"THENEND
530 GOTO515
535 PRINT"[147][212]HIS PROGRAM WILL MEASURE THE SPINDLE"
540 PRINT"MOTOR SPEED OF A 1541 DISK DRIVE. [212]HE"
545 PRINT"NOMINAL SPEED IS 300 [210][208][205], BUT THE SPEED"
550 PRINT"CAN CHANGE SUDDENLY, FROM A FAILURE, OR"
555 PRINT"GRADUALLY, FROM AGING OF COMPONENTS."
560 PRINT"[212]HE PROGRAM SIMPLY SENDS A SHORT 6502"
565 PRINT"ROUTINE TO THE DRIVE AND THEN EXECUTES"
570 PRINT"IT. [212]HAT CAUSES THE 1541 TO ROTATE THE"
575 PRINT"SPINDLE MOTOR, AND SEND A PULSE OVER THE"
580 PRINT"[201][197][195] (SERIAL) BUS ONCE EACH REVOLUTION."
581 PRINT" [208][210][197][211][211] [210][197][212][213][210][206]."
582 GETA$:IFA$=CHR$(13)THEN585
583 GOTO582
585 PRINT"[147][212]HE COMPUTER MEASURES THE TIME INTERVAL"
590 PRINT"BETWEEN SUCCESSIVE PULSES, AND"
595 PRINT"CALCULATES AND DISPLAYS THE SPEED IN"
600 PRINT"[210][208][205]'S. [212]HUS, A READING IS PRINTED TO"
605 PRINT"THE SCREEN FIVE TIMES PER SECOND. [212]HE"
610 PRINT"ACCURACY IS +/- 0.1 [210][208][205]. [213]P TO 2000"
615 PRINT"READINGS ARE STORED, FOR LATER"
620 PRINT"EXAMINATION (OVER 6 MINUTES WORTH)."
625 PRINT"[212]O END THE TEST, AND TURN OFF THE"
630 PRINT"MOTOR, PRESS THE COMKEY ([195]=)."
635 PRINT" [208][210][197][211][211] [210][197][212][213][210][206] [198][207][210] [205][193][201][206] [205][197][206][213]."
640 GETA$:IFA$=CHR$(13)THEN500
645 GOTO640
800 PRINT"[147]"
805 PRINT"ENTER DISK DRIVE DEVICE NUMBER."
810 PRINT" 8[145]":INPUTD:IFD-8AND252THENPRINT"ILLEGAL DEVICE NUMBER":GOTO805
815 POKE183,2:POKE184,8:POKE185,8:POKE186,D:POKE187,253:POKE188,.
820 POKE253,35:POKE254,50:SYS65472
825 IFPEEK(783)AND1THENPRINT"[147]?DEVICE";D;"NOT PRESENT":CLOSE8:GOTO805
830 GOTO25
1000 DATA120,24,165,45,105,2,133,251,165
1010 DATA46,105,0,133,252,169,3,141,4
1020 DATA221,169,0,141,5,221,169,17,141
1030 DATA14,221,169,254,141,6,221,169
1040 DATA255,141,7,221,162,79,189,141
1050 DATA192,157,0,4,202,16,247,162,0
1060 DATA169,89,44,0,221,16,251,142,15
1070 DATA221,174,7,221,172,6,221,141,15
1080 DATA221,138,73,255,170,152,73,255
1090 DATA160,0,56,32,135,175,32,126,175
1100 DATA169,17,160,191,32,103,184,169
1110 DATA139,160,0,32,15,187,169,17,160
1120 DATA191,32,103,184,32,204,188,32
1130 DATA12,188,169,249,160,186,32,162
1140 DATA187,169,0,133,111,165,97,32,18
1150 DATA187,32,27,188,166,251,164,252
1160 DATA32,212,187,96,18,5,1,4,9,14,7
1170 DATA32,35,32,32,32,32,32,32,32,32
1180 DATA32,19,16,5,5,4,32,40,18,16,13
1190 DATA41,32,32,32,32,32,32,32,32,32
1200 DATA32,32,99,99,99,99,99,99,99,99
1210 DATA99,32,32,32,32,32,32,32,32,32
1220 DATA99,99,99,99,99,99,99,99,99,99
1230 DATA99,32,32,32,32,32,32,32,32,32
1240 DATA32,32
1250 DATA120,169,0,141,3,28,173,12,28
1260 DATA9,34,141,12,28,173,0,28,9,4,141
1270 DATA0,28,32,16,245,169,0,141,0,24
1280 DATA169,4,44,0,24,208,10,173,0,28
1290 DATA41,251,141,0,28,88,96,162,0,202
1300 DATA208,253,169,2,141,0,24,208,219